Code First একটি Entity Framework এর ডিজাইন প্যাটার্ন, যা ডেভেলপারদের কোড দিয়ে ডেটাবেসের স্ট্রাকচার তৈরি করতে সহায়তা করে। এর মাধ্যমে ডেটাবেস স্কিমা তৈরি করার জন্য ডেটাবেসের পূর্বে কোনো স্ট্রাকচার বা টেবিল ডিজাইন করার প্রয়োজন নেই। Code First পদ্ধতিতে, প্রথমে মডেল ক্লাস তৈরি করা হয়, এবং তারপর Entity Framework সেই ক্লাসগুলোকে ডেটাবেস টেবিল এবং অন্যান্য অবজেক্টে রূপান্তর করে।
Code First পদ্ধতিতে, ডেটাবেস তৈরি ও আপডেট করার প্রক্রিয়া তিনটি প্রধান পদক্ষেপে বিভক্ত করা যেতে পারে:
ডোমেন মডেল তৈরি: প্রথমে আপনার ডোমেন মডেল (যেমন ক্লাস) তৈরি করতে হবে। প্রতিটি ক্লাস এক একটি Entity হিসেবে কাজ করবে এবং এটিকে ডেটাবেস টেবিলের সাথে ম্যাপ করা হবে।
উদাহরণস্বরূপ:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
DbContext তৈরি: DbContext
ক্লাস তৈরি করা হয়, যা Entity Framework এর মাধ্যমে ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করে। এই ক্লাসের মাধ্যমে ডেটাবেস টেবিলগুলোর জন্য DbSet (যেমন, একটি DbSet<Student>
) ব্যবহার করা হয়।
উদাহরণস্বরূপ:
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
}
ডেটাবেস মাইগ্রেশন: মডেল তৈরি হওয়ার পর, Entity Framework মাইগ্রেশন ব্যবস্থার মাধ্যমে ডেটাবেসের স্কিমা আপডেট বা তৈরি করা হয়। মাইগ্রেশন ব্যবহার করে ডেটাবেসে পরিবর্তনগুলো পরিচালনা করা যায়।
প্রথম মাইগ্রেশন তৈরি করার জন্য নিচের কমান্ড ব্যবহার করা হয়:
Add-Migration InitialCreate
তারপর ডেটাবেস আপডেট করতে:
Update-Database
Code First পদ্ধতিতে, মডেল কনফিগারেশন Data Annotations
এবং Fluent API
এর মাধ্যমে করা যেতে পারে।
ডেটা অ্যানোটেশনগুলির মাধ্যমে আপনি মডেল প্রপার্টি ও ক্লাসের উপর সীমিত কনফিগারেশন করতে পারেন। উদাহরণস্বরূপ:
Key
: এটি প্রপার্টিকে প্রাইমারি কী হিসেবে চিহ্নিত করে।Required
: এটি নির্দিষ্ট প্রপার্টিকে আবশ্যক (Not Null) করে তোলে।MaxLength
: এটি প্রপার্টির সর্বোচ্চ দৈর্ঘ্য নির্ধারণ করে।public class Student
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(100)]
public string Name { get; set; }
[Range(5, 100)]
public int Age { get; set; }
}
Fluent API এর মাধ্যমে আরও জটিল কনফিগারেশন করা যায়, যা Data Annotations দিয়ে করা সম্ভব নয়। এটি OnModelCreating
মেথডের মধ্যে করতে হয়।
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Student>()
.Property(s => s.Name)
.IsRequired()
.HasMaxLength(100);
modelBuilder.Entity<Student>()
.Property(s => s.Age)
.HasDefaultValue(18);
}
}
Code First পদ্ধতিতে ডেটাবেস তৈরি এবং স্কিমা আপডেট করার জন্য মাইগ্রেশন ব্যবস্থার ব্যবহার গুরুত্বপূর্ণ। মাইগ্রেশন মূলত ডেটাবেসের পরিবর্তনগুলো ট্র্যাক করে এবং ডেটাবেস স্কিমা আপডেট করতে সাহায্য করে।
Code First পদ্ধতি সাধারণত ছোট এবং মাঝারি আকারের প্রজেক্টে ব্যবহার করা হয় যেখানে ডেভেলপারদের ডেটাবেসের স্ট্রাকচার পুরোপুরি কোডের মাধ্যমে কনট্রোল করতে হবে। তবে, যদি আপনি একটি বিদ্যমান ডেটাবেসের সাথে কাজ করছেন, তবে Database First বা Model First পদ্ধতিগুলি আরও উপযুক্ত হতে পারে।
Code First পদ্ধতি একটি অত্যন্ত শক্তিশালী টুল যা ডেটাবেস ডিজাইন এবং কনফিগারেশন প্রক্রিয়াকে সহজ করে তোলে, বিশেষ করে যদি আপনি মডেলগুলির পরিবর্তন করতে চান এবং ডেটাবেস মাইগ্রেশন পরিচালনা করতে চান।
common.read_more